Skip to main content

Konfiguration der generischen CiA402-Achse

CODESYS SoftMotion stellt Antriebstreiber für verschiedene Antriebe bereit. Falls für Ihren verwendeten CiA402-Antrieb kein spezifischer Treiber verfügbar ist, können Sie die generische CiA402-Achse nutzen.

Die Kompatibilität und das Verhalten der generischen Achse hängen jedoch maßgeblich von der CiA402-Implementierung im jeweiligen Antrieb ab. In der Praxis hat sich gezeigt, dass verschiedene Hersteller den CiA402-Standard unterschiedlich auslegen – insbesondere im Hinblick auf die Fehlerbehandlung und die Unterstützung von Endschaltern.

Daher kann nicht garantiert werden, dass die generische CiA402-Achse in jedem Fall korrekt oder vollständig mit einem bestimmten Antrieb funktioniert.

Anmerkung

Der generische CiA402-Treiber unterstützt bis zu 8 Achsen, falls die Gerätebeschreibung des Antriebs keine Anzahl vorgibt. Andernfalls wird die in der Gerätebeschreibung definierte Anzahl von Achsen unterstützt.

CANopen: Die Anzahl der möglichen Achsen hängt von den Profilen der logischen Geräte in der EDS-Datei ab (Objekt 1000H und 67FFH + X * 800H, X = Nummer des logischen Geräts). Weitere Details finden Sie in der Norm CANopen CiA301.

EtherCAT: Die Anzahl der möglichen Achsen hängt von den definierten CiA402-Kanälen (CoE DS402Channels) in der ESI-Datei ab.

Eine Anpassung der EDS- oder ESI-Datei muss durch den Gerätehersteller erfolgen.

Verwendete Objekte während der Inbetriebnahme

Während der Inbetriebnahme wird auf folgende Objekte zugegriffen, wenn dies vom Gerät unterstützt wird.

Objekt

Lese-/Schreibzugriff

(M)andatory: verpflichtend/

(O)ptional

Kommentar

0x1000:0

lesen

M

Das niederwertige Wort muss 402 sein. Ansonsten Abbruch.

0x1018:1

lesen

O

0x1018:2

lesen

O

0x1018:3

lesen

O

0x1018:4

lesen

O

0x6502:0

lesen

O

0x605A:0

lesen

O

0x60C2:1

schreiben

Wenn Parameter Set60C2 = TRUE

0x60C2:2

schreiben

Wenn Parameter Set60C2 = TRUE

0x6076:0

lesen

O

Verwendete Objekte während des Betriebs

Die folgenden Objekte werden abhängig von den verwendeten Funktionen während des Betriebs verwendet:

0x603F:00, 0x6040:00, 0x6041:00, 0x6060:00, 0x6061:00, 0x6062:00, 0x6064:00, 0x606B:00, 0x606C:00, 0x6074:00, 0x6077:00, 0x6078:00, 0x607C:00, 0x60B1:00, 0x60B2:00,0x60B8:000x60B9:00, 0x60BA:00, 0x60BB:00, 0x60BC:00, 0x60BD:00, 0x60F4:00.

Erweiterte Konfiguration

Wichtig

Sie müssen die Option Generische Konfigurationseditoren anzeigen im Dialog: Optionen: Geräteeditor aktivieren, damit die Registerkarte mit den Parametern angezeigt wird.

Sie können mit folgenden Parametern den Ablauf des CiA402-Zustandsautomaten detailliert beeinflussen.

CiA402 Parameter

Beschreibung

_readVelocityFactor_6096

TRUE: Der Geschwindigkeitsfaktor (Objekt 6096) wird gelesen und für die Umrechnung der Geschwindigkeitseinheiten verwendet.

FALSE: Der Geschwindigkeitsfaktor wird nicht gelesen. Die Geschwindigkeitseinheit wird als Inkremente pro Sekunde angenommen.

_bImmediateDisabling

TRUE: Schaltet den Status des Antriebss von Operation enabled direkt nach Switch on disabled, wenn bRegulator auf FALSE zurückgesetzt wird.

FALSE: Schaltet den Status über "Eingeschaltet" und "Einschaltbereit", um dem Antrieb die Möglichkeit zu geben, einen Schnellstopp durchzuführen und die Bremse richtig zu bedienen.

Hinweis: Ist diese Option auf FALSE gesetzt, können die Zustände, für die die sofortige Deaktivierung ausgeschaltet wird, mit der Bit-Maskierung _dwStatesImmediateDisabling feinabgestimmt werden.

_bForbidReenableDuringDisabling

Nur relevant, wenn _bImmediateDisabling = FALSE.

TRUE: Antrieb wird Schritt für Schritt deaktiviert bis das Antriebssignal in Ready to switch on ist.

dwStatesImmediateDisabling

Nur relevant when _bImmediateDisabling = FALSE.

Bit-Maskierung der Zustände, für die die sofortige Deaktivierung eingeschaltet ist:

  • Bit 0: Normale Operation

  • Bit 1: Schnellhalt

  • Bit 2: Externer Schnellhalt

  • Bit 3: Referenzfahrt

Beispiel: Wenn _bImmediateDisabling = FALSE , bedeutet der Wert 2#0110, dass nur für die Zustände "Normale Operation" und "Referenzfahrt" die sofortige Deaktivierung ausgeschaltet ist. Für die Zustände "Schnellhalt" und "Externer Schnellhalt" ist die sofortige Deaktivierung eingeschaltet.

_uiPreHomingWait

Anzahl der Zyklen, die im Zustand PRE_HOMING gewartet werden, bevor die Referenzfahrt mit Setzen von Bit 4 des Steuerworts gestartet wird.

_uiPostHomingWait

Anzahl der Zyklen, die die Zustandsmaschine im Zustand HOMING_DONE wartet, bevor sie in "Normale Operation" zurückschaltet.

_uiHomingMinCycles

Anzahl der Zyklen zu Beginn von HOMING, wobei die „erledigt“-Bits (Bit 10/12 des Statusworts) ignoriert werden.

_uiWaitCyclesForStateSwitch

Anzahl der Zyklen, die das System wartet, bis der Antrieb einen Befehl zur Zustandsänderung ausgeführt hat. Wenn der Antrieb fehlschlägt, schaltet das System zurück auf SWITCH_ON_DISABLED.

_bPreHomingWaitBit12Clear

TRUE: Warten in PRE_HOMING bis Bit 12 des Statuswort vom Antrieb gelöscht wurde, bevor die Referenzfahrt gestartet wird (bevor Bit 4 des Steuerworts gesetzt wird).

Beachten Sie, dass der Zustandsmaschine in jedem Fall mindestens _uiPreHomingCycles lang im Zustand PRE_HOMING bleibt.

_bCheckBit10PostHoming

TRUE: Wenn Bit 12 und Bit 10 des Statuswort TRUE sind, wird auf HOMING_DONE geschaltet (wie in der CiA-402 spezifiziert).

FALSE: Bit 10 wird ignoriert, nur Bit 12 wird verwendet.

_bCheckOpMode

TRUE: Überprüfen, ob 0x6061 den Wert hat, der in 0x6060 gesetzt ist, wenn die Achse freigegeben wird.

FALSE: Diese Prüfung auslassen und sofort nach Setzen der Betriebsart aktivieren.

_abyControllerMode

Dieses ARRAY[0..7] OF BYTE enthält die Betriebsarten (Objekt 0x6060), die mit AXIS_REF_SM3.byOperationMode übereinstimmen. (Index 0,3 = Position, Index 1 = Geschwindigkeit, Index 2 = Drehmoment

_bCheckBit12InPositionMode

TRUE: AxisIsReadyForMotion überprüft Bit 12 in CSP oder IP.

FALSE: AxisIsReadyForMotion überprüft Bit 12 nicht.

_bDoHaltWhenStopInterruptsHome

TRUE: bei Unterbrechung von MC_Stop, Abbruch der Referenzfahrt mit Bit 8 des Steuerworts

FALSE: Bit 8 nicht setzen, sondern direkt die Betriebsart umschalten

_bCheckBit13InHomingMode

TRUE: in HOMING_ACTIVE, wStatusWord.13 = TRUE führt zu einem Fehlerstopp und wControlWord.8 := TRUE (abhängig von _bDoHaltWhenStopInterruptsHome)

_bSetControlBit4InCSP

TRUE: Setzt Bit 4 des Statusworts auch in CSP-Mode. Einige Antriebe erfordern dies, obwohl es nicht standard ist.

_uiHomingWaitListeningBits101213

Im Zustand HOMING_ACTIVE dürfen nach dem Setzen von Bit 4 während dieser Anzahl von Zyklen die Bits 10, 12 und 13 nicht abgehört werden. (Einige Antriebe brauchen etwas Zeit, um diese Bits zurückzusetzen).

_bRegulatorOnRequiresVoltageEnabled

Legt fest, ob Bit 4 des Statusworts (Spannung freigegeben) TRUE sein muss, damit bRegulatorRealState = TRUE wird (Standardwert: FALSE).

_bDriveStartRequiresOperationEnabled

Legt fest, ob Bit 2 des Statusworts (Betrieb freigegeben) TRUE sein muss, damit bDriveStartRealState = TRUE wird (Standardwert: TRUE).

_modeOfOperation_Torque

Der ModeOfOperation, der für den Controller-Mode torque verwendet wird. Muss sich wie der Cyclic Sync Torque-Modus verhalten.

_modeOfOperation_Velocity

Der ModeOfOperation, der für den Controller-Mode velocity verwendet wird. Muss sich wie der Cyclic Sync Velocity-Modus verhalten.

_modeOfOperation_Position

Der ModeOfOperation, der für den Controller-Mode position verwendet wird. Muss sich wie der Cyclic Sync Position-Modus verhalten.

_bStayInSwitchOnDisabled

FALSE: Es wird ein automatischer Wechsel von SWITCH_ON_DISABLED zu READY_TO_SWITCH_ON durchgeführt, wenn entweder MC_Power.bDriveStart TRUE ist oder der Code für die Schnellstopp-Option (Objekt 0x605A:00) > 4 ist.

TRUE: Der Wechsel von SWITCH_ON_DISABLED zu READY_TO_SWITCH_ON erfolgt nur, wenn MC_Power.bRegulatorOn TRUE ist.

Touch Probe

Der Funktionsbaustein MC_TouchProbe benötigt eine TRIGGER_REF als Eingang. TRIGGER_REF.iTriggerNumber hat bei der generischen CiA402-Achse folgende Bedeutung:

TRIGGER_REF.iTriggerNumber

Bedeutung

0

Touch Probe 1, positive Flanke

1

Touch Probe 1, negative Flanke

2

Touch Probe 2, positive Flanke

3

Touch Probe 2, negative Flanke

Fehlerdiagnose: Antrieb lässt sich nicht über MC_Power einschalten

Die generische Achse erwartet folgende Bits im Statuswort, um MC_Power.Status = TRUE zurückzugeben:

  • Bit 0 (ready to switch on)

  • Bit 1 (switched on)

  • Bit 2 (operation enabled)

  • Bit 5 (quick stop)

  • Bit 12

    Bit 12 wird jedoch nicht von jedem Antrieb gesetzt. Wenn der Antrieb das Bit nicht setzt, kann der Parameter _bCheckBit12InPositionMode der generischen Achse auf FALSE gesetzt werden.